#ifndef _SERVER_GLOBAL_CONFIG_H_
#define _SERVER_GLOBAL_CONFIG_H_
#include "stdio.h"
#include "stdlib.h"

#include "server_typedef.h"
#include "server_log.h"

#define SYSTEM_CONFIG_FILE_PATH         "./server/config/system_config.conf"
#define BOOK_MANAGE_CONFIG_FILE_PATH    "./server/config/book_manage.conf"

#define BOOK_MANAGE_CONFIG_MAX_BORROW_BOOKS_CONFIG 8   // 可以配置的最大借阅图书数量
#define BOOK_MANAGE_CONFIG_MAX_RENEW_TIMES_CONFIG  4   // 可以配置的最大续借次数

// 系统层
typedef struct _LibSystemConfig{
    int server_port;
    int max_connections; // 最大连接数
} LibSystemConfig;

// 图书管理层
typedef struct _BookManageConfig{
    // 借阅时间
    uint16     stu_max_borrow_days;
    uint16     teacher_max_borrow_days;
    // 借阅数量
    uint16     stu_max_borrow_books;
    uint16     teacher_max_borrow_books;
    // 续借时间
    uint16     stu_renew_days;
    uint16     teacher_renew_days;
    // 续借次数
    uint8      stu_renew_max_count;     // 学生最大续借次数
    uint8      teacher_renew_max_count; // 教师最大续借次数
    // 服务器添加过的所有图书和用户数量
    uint32  next_book_id; // 下一个图书ID
    uint32  next_user_id; // 下一个用户ID
}BookManageConfig;

extern LibSystemConfig      system_config;
extern BookManageConfig     book_config;

uint8 server_load_config(void);
uint8 server_save_config(void);
#endif // _SERVER_GLOBAL_CONFIG_H_
